# Create your views here.
from django.http import HttpResponse, HttpResponseNotFound,HttpResponseRedirect
from microblog.polls.models import Poll, Choice
from django.template import Context, loader,RequestContext
from django.shortcuts import get_object_or_404, render_to_response
from django.core.urlresolvers import reverse

def index(request):
    latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
    t = loader.get_template('polls/index.html')
    c = Context({'latest_poll_list' : latest_poll_list,})
    return HttpResponse(t.render(c))

def detail(request, poll_id):
    p = get_object_or_404(Poll, pk=poll_id)
    return render_to_response('polls/detail.html', {'poll' : p})
def results(request, poll_id):
    p = get_object_or_404(Poll, pk=poll_id)
    return render_to_response("polls/results.html", {'poll': p})
def vote(request, poll_id):
    p = get_object_or_404(Poll, pk=poll_id)
    try:
        selected_choice = p.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        return render_to_response('polls/detail.html'
                                  ,{'poll':p, 'error_message':"You didn't select a choice"}
                                  ,context_instance=RequestContext(request))
    else:
        selected_choice.votes += 1
        selected_choice.save()
        return HttpResponseRedirect(reverse('microblog.polls.views.results', args=(p.id,)))